Microprocessors may be designed with multiple processing elements, in which each processing element is programmed to perform a single function. For example, a graphics processing unit may have a first processing element (e.g., a geometry engine) that is dedicated to performing a first function and a second processing element (e.g., a rasterizer) that is dedicated to performing a second function. The function that each processing element may perform may be specified when the microprocessor is designed, i.e., before the microprocessor is manufactured. In such a microprocessor, the functions of each processing element may not be changed after the microprocessor is manufactured. When the function of each dedicated processing element may not be changed after manufacturing the microprocessor, the processing elements may not be reassigned to perform different functions to dynamically balance a workload among the processing elements.